package qjc.e_普通数组;

public class e1_最大子数组和 {
    /**
     * 初始化最大子数组和为数组的第一个元素，初始化当前子数组和为0
     * 遍历数组，如果当前子数组和小于0，重置为0，这是因为负数的子数组和对后续的和没有贡献，
     * 将当前数字加入当前子数组和，更新最大子数组和
     */
    public int maxSubArray(int[] nums) {
        int maxSum = nums[0];
        int curSum = 0;
        for(int num : nums){
            if(curSum < 0){
                curSum = 0;
            }
            curSum += num;
            maxSum = Math.max(maxSum, curSum);
        }
        return maxSum;
    }
}
